From 7280aab36008a5c2b4605b61847907f75f05b2d0 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Mon, 16 Jun 2008 15:21:49 +0100 Subject: [PATCH] amd svm: Do not touch (non-existent) attr and selector fields for GDTR and IDTR in the VMCB in svm_set_segment_register(). This is just for clarity of code and to prevent any issues in the future. Signed-off-by: Keir Fraser --- xen/arch/x86/hvm/svm/svm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 9af2032b41..3f0dd62ce2 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -574,10 +574,12 @@ static void svm_set_segment_register(struct vcpu *v, enum x86_segment seg, memcpy(&vmcb->tr, reg, sizeof(*reg)); break; case x86_seg_gdtr: - memcpy(&vmcb->gdtr, reg, sizeof(*reg)); + vmcb->gdtr.base = reg->base; + vmcb->gdtr.limit = (uint16_t)reg->limit; break; case x86_seg_idtr: - memcpy(&vmcb->idtr, reg, sizeof(*reg)); + vmcb->idtr.base = reg->base; + vmcb->idtr.limit = (uint16_t)reg->limit; break; case x86_seg_ldtr: memcpy(&vmcb->ldtr, reg, sizeof(*reg)); -- 2.30.2